% !Mode:: "TeX:UTF-8"
\chapter{软件需求规格说明}

\section{用户需求}
\subsection{目标用户}
\begin{enumerate}
    \item {普通用户}:日常订餐人群，关注快速便捷的下单体验。
    \item {商家}:餐饮店、快餐店等，希望增加销售额并简化订单管理。
    \item {配送员}：兼职或全职配送员，关注订单的接单效率和结算便利性。
\end{enumerate}
\subsection{用户痛点}
\begin{enumerate}
    \item {用户希望能够快速找到想要的美食，简单便捷地下单。}
    \item {商家需要高效管理订单、菜品和促销活动。}
    \item {配送员希望快速接单、导航和完成配送任务。}
\end{enumerate}
\vspace{1cm}  % 添加 1 厘米的垂直空白

\section{功能需求}
\subsection{用户端APP}
\begin{enumerate}
\item {注册和登录}
\begin{itemize}
    \item {支持手机号，微信，支付宝登录。}
    \item {支持短信验证码找回密码。}
\end{itemize}
\item {首页展示}
\begin{itemize}
    \item {支持更改定位。}
    \item {支持搜索功能，用户可以按照菜品或者商家搜索。}
\end{itemize}
\item {商家展示}
\begin{itemize}
    \item {处于登录状态时，若购物车中已有此商家商品，则显示商品数量。}
    \item {展示附近推荐餐厅及热门菜品。}
    \item {支持按不同需求排序。}
\end{itemize}
\item {点餐功能}
\begin{itemize}
    \item {菜品列表展示，支持菜品详情查看及加购物车操作。}
    \item {可以控制商品加购数量。}
    \item {可跳转到支付界面。}
    \item {若未登录，上述动作跳转到登录页面。}
\end{itemize}
\item {支付页面}
\begin{itemize}
    \item {支持管理地址。}
    \item {支持选择支付方式。}
\end{itemize}
\item {订单管理}
\begin{itemize}
    \item {用户可以查看订单状态（待支付、已支付、配送中、已完成）}
    \item {支持订单隐藏功能。}
    \item {未支付订单应有支付入口。}
\end{itemize}
\item {个人中心}
\begin{itemize}
    \item {支持登录，注册功能。}
    \item {用户资料编辑，地址管理。}
\end{itemize}
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\subsection{后台管理系统}
\begin{enumerate}
\item {用户管理}
\begin{itemize}
    \item {用户注册，增加信息。}
    \item {核验用户身份。}
    \item {查看，管理用户信息。}
\end{itemize}
\item {商家管理}
\begin{itemize}
    \item {店铺信息管理}
\end{itemize}
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\subsection{后端}
\begin{enumerate}
\item {用户管理}
\begin{itemize}
    \item {实现用户的注册、登录功能，允许用户通过手机号进行注册和登录。}
    \item {提供个人信息维护功能，允许用户修改密码、更新个人资料等，确保系统用户的安全性和便捷性。}
\end{itemize}
\item {订单管理}
\begin{itemize}
    \item {实现订单的创建、查询、取消等功能。}
    \item {用户可以浏览订单列表，查看订单详情，取消未完成的订单。}
    \item {系统需要记录订单的状态变化，以便跟踪订单的处理进度。}
\end{itemize}
\item {支付系统}
\begin{itemize}
    \item {集成第三方支付接口，如支付宝、微信支付等。}
    \item {实现支付功能的调用和处理，确保支付过程的安全性和稳定性。}
    \item {提供支付结果的查询和通知功能，以便用户及时了解支付状态。}
\end{itemize}
\item {权限控制}
\begin{itemize}
    \item{实现基于角色的访问控制（RBAC）‌，确保不同用户根据其角色拥有不同的操作权限，保障系统数据的安全性。}
\end{itemize}
\item {业务逻辑处理}
\begin{itemize}
    \item{根据业务需求，处理各种业务逻辑，如订单管理、支付处理、数据分析等，确保系统功能的完整性和准确性。}
\end{itemize}
\item {数据库交互}
\begin{itemize}
    \item{与数据库进行交互，执行数据的增删改查操作，为前端提供必要的数据支持。}
\end{itemize}
\item {resful风格接口开发}
\begin{itemize}
    \item{为前端提供RESTful风格的API接口，确保前后端分离的开发模式下，数据的顺畅传输和交互。}
\end{itemize}
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section{UML流程}
\subsection{商家展示}
\begin{figure}[H]
    \centering
    \includegraphics[width=0.3\textwidth]{shangjiazhanshi}
    \caption{商家展示}
    \label{fig:shangjiazhanshi}
    \vspace{\baselineskip}
\end{figure}

\subsection{选购}
\begin{figure}[H]
    \centering
    \includegraphics[width=0.3\textwidth]{xuangou}
    \caption{选购}
    \label{fig:xuangou}
    \vspace{\baselineskip}
\end{figure}

\subsection{结算}
\begin{figure}[H]
    \centering
    \includegraphics[width=0.3\textwidth]{jiesuan}
    \caption{结算}
    \label{fig:jiesuan}
    \vspace{\baselineskip}
\end{figure}

\subsection{登录注册}
\begin{figure}[H]
    \centering
    \includegraphics[width=0.3\textwidth]{denglu}
    \caption{登录注册}
    \label{fig:denglu}
    \vspace{\baselineskip}
\end{figure}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section {非功能需求}
\begin{enumerate}
    \item {性能要求}：保证100ms内响应用户请求。
    \item {安全性要求}：数据传输加密，用户数据保护，防止信息泄露。
    \item {兼容性要求}：支持iOS和Android主流版本。
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section {技术要求}
\begin{enumerate}
    \item {技术架构}：前后端分离架构，前端使用Vue3，后端采用Spring Boot + MySQL。
    \item {第三方服务（待定）}：集成高德地图API用于定位和导航，支付功能集成支付宝和微信支付接口。
    \item {开发环境}：前端：Hbuilder X /vscode ~~ 后端：IDEA（jdk 17 tomcat 10）
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section {UI/UX设计}
\begin{enumerate}
    \item {简洁明了}：界面设计简洁，注重用户操作流畅性。
    \item {响应迅速}：减少用户等待时间，操作反馈及时。
    \item {交互原型图}：
    \begin{figure}[H]
        \centering
        \includegraphics[width=0.3\textwidth]{UI_UX}
        \caption{交互原型图}
        \label{fig:UI_UX}
        \vspace{\baselineskip}
    \end{figure}
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section {项目范围}
\begin{enumerate}
    \item {包含}：前后端分离架构，前端使用Vue3，后端采用Spring Boot + MySQL。
    \begin{itemize}
        \item {用户端和后台管理系统的开发}
        \item {业务逻辑、支付、订单管理等核心功能的实现}
    \end{itemize}
    \item {不包含}：集成高德地图API用于定位和导航，支付功能集成支付宝和微信支付接口。
    \begin{itemize}
        \item {商家端和外卖员端app开发}
        \item {非外卖相关功能开发}
    \end{itemize}
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section {约束条件}
\begin{enumerate}
    \item {时间}：预计开发周期为三个星期。
    \item {资源}：开发团队由4名开发人员、4名测试人员(兼)、1名产品经理（兼）组成。
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section {技术要求}
\begin{enumerate}
    \item {系统稳定运行，功能完整，用户反馈良好。}
    \item {界面美观大方，符合业务逻辑。}
    \item {完成所有功能的开发和测试，达到预期性能和安全要求。}
    \item {项目按期上线，用户满意度达到80\%以上}
\end{enumerate}

\vspace{1cm}  % 添加 1 厘米的垂直空白

\section {用例及场景}
\begin{enumerate}
    \item {用例1：用户通过APP浏览附近的餐厅，选择心仪菜品并下单，支付完成后等待配送员送餐上门。}：
    \item {用例2：商家收到订单后备餐，配送员接单并将餐品送到用户手中，用户确认收货并评价。}
\end{enumerate}